package com.hpu.imgdown.util;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

/**
 * 
 * @ClassName: DownsUtil 
 * @Description: Java开发大数据分布式下载系统【2018最新技术】
 * @author: zch
 * @version: v.10
 * @date: 2018年7月5日 下午8:19:55
 */
public class DownsUtil {
	
	/**
	 * 
	 * @author: zch
	 * @description:根据url网址和页面的编码集，获取网页的源代码
	 * @param url  需要下载源代码的网址
	 * @param encoding 网页的编码方式
	 * @return 返回值为String字符串类型的网页源代码
	 * <a href="http://www.baidu.com" style="font-size:30px;text-decoration:none;color:red;" >百度一下，你就知道！</a>
	 */
	public static String getHtmlResourceByUrl(String url,String encoding) {
		/**
		 * 这里声明的变量并不占用内存空间
		 * 只有在为该变量创建对象的时候才使用内存空间
		 */
		URL urlObj = null;
		URLConnection uConnection = null;
		InputStreamReader isr = null;
		BufferedReader bReader = null;
		
		//存储源代码的容器
		StringBuffer buffer = new StringBuffer();
		try {
			//建立网络连接
			urlObj = new URL(url);
			//打开网络连接
			uConnection = urlObj.openConnection();
			//建立文件的写入流
			isr = new InputStreamReader(uConnection.getInputStream(), encoding);
			//建立文件的缓冲流
			bReader = new BufferedReader(isr);
			
			String temp = null;//建立一个临时变量temp
			while((temp = bReader.readLine()) != null) {
				buffer.append(temp+"\n");
			}
			
			
		} catch (MalformedURLException e) {			
			e.printStackTrace();
			System.out.println("您的网络不给力，请检查设置。");
		}catch (IOException e) {
			e.printStackTrace();
			System.out.println("您的网络打开失败，请稍后重试！");
		}finally {
			if(isr !=null) {
				try {
					isr.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		
		return buffer.toString();
		
	}
	
}
